<h5>Comunicando el hardware Wiring y Blender/Phyton</h5>
<p>Este tutorial presenta la comunicaci&oacute;n b&aacute;sica entre el hardware Wiring y Blender/Phyton <a href="http://www.blender.org/">http://www.blender.org/</a>. El objetivo del tutorial ser&aacute; leer valores simples desde la tarjeta Wiring. Se asume que el software Wiring y Blender/Phyton est&aacute; instalado y los ajustes apropiados de Wiring han sido completados. Para m&aacute;s informaci&oacute;n acerca de la instalaci&oacute;n de Wiring revise los <a href="http://wiring.org.co/learning/tutorials/">tutoriales</a> sobre la instalaci&oacute;n y los ajustes del software.</p>
<p>Este tutorial est&aacute; basado en el tutorial hecho por Simon Blackmore el cual puede ser encontrado <a href="http://www.simonblackmore.net/notes/doku.php?id=wiring_to_blender">aqu&iacute;</a>.</p>
<p>Nota: Este tutorial ha sido probado usando Blender 2.49 el cual puede ser descargado <a href="http://download.blender.org/release/">aqu&iacute;</a> y Phyton 2.5 el cual puede ser descargado <a href="http://www.python.org/download/releases/2.5.6/">aqu&iacute;</a>.</p>
<h5>Paso 1</h5>
<p>Copie y pegue el siguiente c&oacute;digo en el editor Wiring: Verifique que su programa est&eacute; libre de errores de compilaci&oacute;n presionando el bot&oacute;n Compile/Verify en la barra de men&uacute;. Presione el boto&oacute;n Upload en la barra de men&uacute;. En caso de un error de sintaxis el entorno Wiring imprimir&aacute; el mensaje de error de otro modo imprimir&aacute; que la carga se ha completado satisfactoriamente, el proceso de carga activar&aacute; los LEDs Rx/Tx en el hardware Wiring. El nuevo programa empezar&aacute; autom&aacute;ticamente despu&eacute;s de la carga. Use el bot&oacute;n Serial Monitor para ver los datos entrantes desde la tarjeta Wiring, luego cierre el Serial Monitor otra vez.</p>
<pre>
/** 
 * Fotoresitencia / Blender/Phyton

 * 
 * Lee valores desde una fotoresistencia conectada al 
 * pin an&aacute;logo de entrada 0. El valor leido desde el sensor es proporcional
 * a la cantidad de luz que golpea la superficie del sensor.
 * El valor leido es impreso a trav&eacute;s del serial para ser monitoreado
 * en la consola o recibido en Blender
 */

int val; 

void setup()
{
  Serial.begin(9600);      // ajuste el puerto serial a 9600
}

void loop() 
{
  val = analogRead(0);     // lee el pin an&aacute;logo de entrada 0
  Serial.println(val/4, BYTE);  // imprime el valor leido desde el     
  								 // sensor en el pin an&aacute;logo 0 dividido por 4 (rango 0-255)
  delay(200);                  // espera 200ms para la siguiente lectura
}
</pre>
<p>&nbsp;</p>
<h5>Paso 2</h5>
<p>Descargue PySerial <a href="http://pyserial.sourceforge.net/">aqu&iacute;</a>. Descomprima el archivo y ubique la carpeta &quot;serial&quot; con las otras librer&iacute;as de Python para Blender.</p>
<p><b>Windows:</b></p>
<p>Ubique la carpeta &quot;serial&quot; en la carpeta &quot;.blender/scripts&quot; la cual est&aacute; dentro de la carpeta Blender.</p>
<p><b>Mac OS X:</b></p>
<p>Active los archivos ocultos abriendo Terminal y corriendo el las siguientes dos lineas:</p>
<pre>
username$ defaults write com.apple.Finder AppleShowAllFiles yes
username$ Killall Finder
</pre>
<p>Para desactivar los archivos ocultos, haga los mismo pero use &quot;no&quot; a cambio de &quot;yes&quot;.</p>
<p>Ubique la carpeta &quot;serial&quot; en la carpeta &quot;.blender/scripts&quot; la cual est&aacute; dentro de la carpeta Blender.</p>
<h5>Paso 3</h5>
<p>El pr&oacute;ximo paso es ajustar las cosas en Blender. Ajuste la interfase en modo &quot;Scripting&quot;. </p>
<p><img src="imgs/blender-01.png" width="700" height="423" /></p>
<p>&nbsp;</p>
<h5>Paso 4</h5>
<p>Copie el siguiente c&oacute;digo en el editor y nombrelo &quot;script.py&quot;.</p>
<pre>
import serial
# you will need the name of your serial port
# check in wiring - tools - menu
ser = serial.Serial('COM2', 9600)

x = ser.read(size=1)
y = ord(x)
print "y=", y

ser.close()
</pre>
<p><img src="imgs/blender-02.png" width="489" height="316" /></p>
<p>&nbsp;</p>
<h5>Paso 5</h5>
<p>Asigne un objeto. Seleccione un objeto en la escena y de click en las propiedades l&oacute;gicas en &quot;Buttons Window&quot;.</p>
<p>Adicione un sensor &quot;always&quot; y conectelo con el c&oacute;digo de python. Esto significa que el c&oacute;digo de python se ejecutar&aacute; cuando el game engine este corriendo. Deber&iacute;a verse as&iacute;: </p>
<p><img src="imgs/blender-03.png" width="979" height="201" /></p>
<h5>Paso 6</h5>
<p>Corra el game engine. Haga click en el '3D Panel' y presione 'P'. El '3D Panel' deber&iacute;a cambiar a vista de juego y los datos provenientes de Wiring deber&iacute;an aparecer en la consola.</p>
<img src="imgs/blender-04.png" width="669" height="338" />
<p>&nbsp;</p>
<p>Siguiente &gt;&gt; <a href="blender2.html">Enviando datos a la tarjeta Wiring desde Blender/Python.</a></p>
